//
// Created by Liming Shao on 10/25/2017.
//

#ifndef CHAPTER3_C088_H
#define CHAPTER3_C088_H

class C088 {
public:
    typedef struct node{
        int value;
        struct node* left;
        struct node* right;
    }Node;

    // 递归方式前序遍历
    void preOrderRecur(Node* head);
    // 递归方式中序遍历
    void inOrderRecur(Node* head);
    // 递归方式后序遍历
    void posOrderRecur(Node* head);

    // 非递归方式
    void preOrderUnRecur(Node* head);
    void inOrderUnRecur(Node* head);
    void posOrderUnRecur(Node* head);

    void test();

private:
    Node* newNode(int val);
    void echoLeft(Node* node);
    void echoRight(Node* node);
};


#endif //CHAPTER3_C088_H
